public class TestDemo {
    //protected

    //继承方式：

    //单层继承
    //class B extends A

    //多层继承
    //class B extends A
    //class C extends B

    //不同类继承同一个类
    //class B extends A
    //class C extends A

    //多继承
    //class C extends A,B
    //Java中不支持多继承，
    //时刻牢记, 我们写的类是现实事物的抽象. 而我们真正在公司中所遇到的项目往往业务比较复杂, 可能会涉及到
    //一系列复杂的概念, 都需要我们使用代码来表示, 所以我们真实项目中所写的类也会有很多. 类之间的关系也会更加复杂.
    //但是即使如此, 我们并不希望类之间的继承层次太复杂. 一般我们不希望出现超过三层的继承关系.
    //如果继承层次太多, 就需要考虑对代码进行重构了.


    public static void main(String[] args) {
        Dog dog = new Dog("wby");
        dog.wangWang();
        dog.eat();


        final int  a = 10;
        a = 20;//常量 常量是不能被修改的
        System.out.println(a);

        int[] array = {1,2,3,4,5};
        array = new int[10];

        final int[] array1 = {1,2,3,4,5};
        //array1 = new int[10];这步操作是错误的
        array[0] = 99;
        //final是不能修改array1的这个变量当中储存的值，
        //简单地说：不能让array1指向新的对象，就是不能让地址发生改变，对象的数值可以改变，但是对象的空间不能发生改变
    }
}
/*final*/ class Animals{//如果一个类不想被继承的时候，那么就用关键字final进行修饰
    //那么被final修饰的类学名叫做密封类
    public int age ;
    public String name;
    public String color;

    public Animals(String name) {
        this.name = name;
    }

    public void eat(){
        System.out.println(this.name +"正在吃饭");
    }
}
class Dog extends Animals{
    public void wangWang(){
        System.out.println(this.name + "正在狂吠");
    }

    public Dog(String name) {
        super(name);
    }
}